<?php
namespace app\common\model\jiyun;

use app\common\model\admin\AccountModel;
use app\common\model\jiyun\warehouse\WarehouseModel;
use think\admin\Model;
use think\facade\Cache;


/**
 * 集运模型
 * @package app\common\model\jiyun
 * @author Lhognqi
 * @DateTime 2024-10-22 11:30:38
 */
class TransporModel extends Model
{

    // 设置当前模型对应的完整数据表名称
    protected $name = 'jiyun_transportation';

    // 自动写入时间戳
    protected $autoWriteTimestamp = true;

    /*const STATUS_NO_IN    = 0; // 带入库
    const STATUS_HAS_NO   = 1; // 已入库
    const STATUS_PACKING  = 2; // 集包中
    const STATUS_NO_SENT  = 3; // 待发货
    const STATUS_HAS_SENT = 4; // 已发货
    const STATUS_SIGN_FOR = 5; // 已签收*/


    /**
     * 日志名称
     * @var string
     */
    protected $oplogName = '集运单管理';

    /**
     * 日志类型
     * @var string
     */
    protected $oplogType = '渠道单管理';

    /**
     * 状态
     * @var array
     * */
    public static function getStatus()
    {
        return [
            0 => lang("待集包"),
            1 => lang("集包中"),
            2 => lang("待发货"),
            3 => lang("已发货"),
            4 => lang("已签收"),
        ];

    }

    /**
     * 公司
     *
     * @return \think\model\relation\BelongsTo
     */
    public function account ()
    {
        return $this->belongsTo(AccountModel::class, 'account_id');
    }

    /**
     * 公司
     *
     * @return \think\model\relation\BelongsTo
     */
    public function warehouse ()
    {
        return $this->belongsTo(WarehouseModel::class, 'warehouse_id');
    }

    public static function createTransporNo()
    {
        $name = 'JY';
        $id = Cache::get($name);
        if (!$id) {
            Cache::set($name, 1, strtotime('23:59:59') - time());
            return $name.date("Ymd") . "1";
        }
        Cache::set($name, $id + 1, strtotime('23:59:59') - time());
        $id = $id + 1;
        return $name.date("Ymd") . $id;
    }
}